package org.mango.jiayin.operater.operater.impl;

import java.util.Map;
import java.util.regex.Pattern;
import org.mango.jiayin.operater.operater.Operater;

/**
 * <p>
 * Title: SplitOp
 * </p>
 * <p>
 * Description: decode算子 例如: decode(条件, 值1, 返回值1, 值2, 返回值2, ...值n, 返回值n, 缺省值)
 * </p>
 *
 * @author ji'anyuan
 * @date 2018年3月10日
 */
public class DecodeOp implements Operater {

  @Override
  public String getName() {
    return "decode";
  }

  @Override
  public Object calc(String[] opParames, Object data, Map<String, Object> nestValues) {
    Operater.checkParames(opParames,3);
    Object[] values = Operater.getopParamesValues(opParames, data, nestValues);

    int i=1;
    for(;i<values.length-1;i=i+2){
      if(values[i].equals(values[0])){
        return values[i+1];
      }
    }

    if(i==values.length){
      return values[i];
    }

    return null;
  }
}
